//
//  CTLWaterflowLayout.m
//  瀑布流控件
//
//  Created by DWE_KJ on 2016/11/30.
//  Copyright © 2016年 DWE_KJ. All rights reserved.
//

#import <UIKit/UIKit.h>

@class CTLWaterflowLayout;

/**自定义协议传值*/
@protocol CTLWaterflowLayoutDelegate <NSObject>
//必须实现
@required

/**
 根据宽度 设置cell对应的高度
 
 @param waterflowLayout 自己
 @param index 对应的item
 @param itemWidth item宽度
 @return cell高度
 */
- (CGFloat)waterflowLayout:(CTLWaterflowLayout *)waterflowLayout heightForItemAtIndex:(NSUInteger)index itemWidth:(CGFloat)itemWidth;

@optional

/**
 cell默认的列数
 
 @param waterflowLayout 自己
 @return 返回列数
 */
- (CGFloat)columnCountInWaterflowLayout:(CTLWaterflowLayout *)waterflowLayout;


/**
 cell每一列之间的间距
 
 @param waterflowLayout 自己
 @return 返回对应的边距
 */
- (CGFloat)columnMarginInWaterflowLayout:(CTLWaterflowLayout *)waterflowLayout;


/**
 cell每一行之间的间距
 
 @param waterflowLayout 自己
 @return 返回对应的边距
 */
- (CGFloat)rowMarginInWaterflowLayout:(CTLWaterflowLayout *)waterflowLayout;


/**
 cell 边缘间距
 
 @param waterflowLayout 自己
 @return 返回边缘间距
 */
- (UIEdgeInsets)edgeInsetsInWaterflowLayout:(CTLWaterflowLayout *)waterflowLayout;

@end

@interface CTLWaterflowLayout : UICollectionViewLayout

@property (nonatomic, weak) id<CTLWaterflowLayoutDelegate>delegate;

@end
